package com.zboin.utils;

import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.util.encoders.Base64;
import org.springframework.util.Assert;
import org.springframework.util.DigestUtils;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;

/**
 * @author zhboom
 * @date 2023/8/1
 */
@Slf4j
public class EncryptUtil {

    /**
     * 使用 base64 对数据编码
     * @param context 数据
     */
    public static String base64Encode(String context) {
        Assert.hasText(context, "context value can't be empty.");
        byte[] bytes = context.getBytes(StandardCharsets.UTF_8);
        return Arrays.toString(Base64.encode(bytes));
    }

    /**
     * 使用 md5 对数据加密
     * @param context 数据
     * @param salt 盐
     * @return 加密后的数据
     */
    public static String encryptMd5(String context, String salt) {
        byte[] bytes = (salt + context).getBytes(StandardCharsets.UTF_8);
        return DigestUtils.md5DigestAsHex(bytes);
    }
}
